package com.hb.core.pojo.center.au.dto;

import cn.hutool.core.util.StrUtil;
import com.hb.core.pojo.center.au.entity.Org;
import lombok.Getter;
import lombok.Setter;

import java.util.List;

/**
 * 企业信息数据传输对象
 */
@Setter
@Getter
public class OrgDTO extends Org {
    /**
     * 前端显示名称
     * 省
     */
    private String provinceName;
    /**
     * 前端显示名称
     * 市
     */
    private String cityName;
    /**
     * 前端显示名称
     * 区
     */
    private String areaName;
    /**
     * 企业负责人名称
     */
    private String orgManagerName;
    /**
     * 企业扩展信息
     */
    private OrgExtDTO orgExt;

    /**
     * 父级所有的公司
     */
    private OrgDTO parentDTO;

    /**
     * 子集所有的公司
     */
    private List<OrgDTO> childList;

    /**
     * 供应商库的查询条件
     * 地区数组, 与前端协商好
     * 数组索引的0, 1, 2项分别是省, 市, 区
     */
    private List<Long> districts;

    /**
     * 如果是当前的企业的父企业就会禁用
     * 如果是当前的企业的子企业就不会禁用
     */
    private Boolean disabled;

    /**
     * orgId与id一致  邀请投标人时需要这个参数
     */
    private Long orgId;

    /**
     * 业务角色标识
     */
    private Integer roleSign;

    /**
     * 是否展示当前登录的企业
     */
    private Integer showLoginUser;

    /**
     * 参数验证方法
     * 该方法中验证的字段对应数据库中不能为空的字段
     *
     * @return
     */
    @Override
    public String paramsValid(String... fieldNames) {
        String orgName = getOrgName();
        if (StrUtil.isEmpty(orgName)) {
            return "企业名称不能为空";
        }
        if (StrUtil.length(orgName) > 30) {
            return "企业名称最多支持30个字符";
        }
        String certificateNumber = getCertificateNumber();
        if (StrUtil.length(certificateNumber) > 30) {
            return "证件号码最多只能输入30位";
        }
        return null;
    }
}
